package com.atao.baokede.service;

import com.atao.baokede.pojo.Review;

import java.util.List;
import java.util.Map;

public interface ReviewService {

    /**
     * 添加主评论（一级评论）
     */
    void addMainReview(Review review);

    /**
     * 添加回复评论（二级或三级评论）
     */
    void addReplyReview(Review review);

    /**
     * 获取商品的所有评论（包括主评论和回复）
     */
    List<Review> getReviewsByItemId(Long itemId);

    /**
     * 获取当前用户对指定商品的评论
     */
    Review getReviewByUserIdAndItemId(Long itemId);

    /**
     * 获取评论的回复
     */
    List<Review> getRepliesByParentId(Long parentId);

    /**
     * 删除评论（包括所有子评论）
     */
    void deleteReview(Long id);

    /**
     * 更新评论
     */
    void updateReview(Review review);

    /**
     * 获取商品平均评分
     */
    Double getAverageScoreByItemId(Long itemId);

    /**
     * 获取商品评分分布
     */
    Map<Byte, Long> getScoreDistributionByItemId(Long itemId);
}
